home *** CD-ROM | disk | FTP | other *** search
/ PC-X 1997 October / pcx14_9710.iso / swag / math.swg / 0103_Extended Math Unit.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-11-22  |  1.8 KB  |  94 lines

  1.  
  2. unit Math;
  3.  
  4. interface
  5.  
  6. FUNCTION LogTen( X: REAL ) : REAL;
  7. FUNCTION Power( x: REAL; y: REAL ) : REAL;
  8. FUNCTION PowerInt( x: Integer; y: Integer ) : Integer;
  9. FUNCTION PowerI( x: REAL; i: INTEGER ) : REAL;
  10. FUNCTION PowTen( Power : INTEGER ) : REAL;
  11.  
  12. implementation
  13.  
  14. FUNCTION LogTen( X: REAL ) : REAL;
  15. BEGIN (* LogTen *)
  16.  
  17.    IF X <= 0.0 THEN
  18.       LogTen := 0.0
  19.    ELSE
  20.       LogTen := LN( X ) * (1/ln(10));
  21. end;
  22.  
  23. FUNCTION Power( x: REAL; y: REAL ) : REAL;
  24. BEGIN (* Power *)
  25.    IF x > 0 THEN
  26.        Power := EXP( y * LN( x ) )
  27.    ELSE
  28.       Power := 0.0;
  29. END   (* Power *);
  30.  
  31. FUNCTION PowerInt( x: Integer; y: Integer ) : Integer;
  32. var
  33. N,i : Integer;
  34. begin
  35. N:=X;
  36. for i:=1 to y-1 do x:=x * n;
  37. PowerInt:=X;
  38. end;
  39.  
  40. FUNCTION PowerI( x: REAL; i: INTEGER ) : REAL;
  41. VAR
  42.    Temp: REAL;
  43.    AbsI: INTEGER;
  44.  
  45. BEGIN (* PowerI *)
  46.    IF i < 0 THEN
  47.       BEGIN
  48.          i := -i;
  49.          IF x <> 0.0 THEN x := 1.0 / x;
  50.       END;
  51. Temp := 1.0;
  52.    WHILE( i > 0 ) DO
  53.       BEGIN
  54.          WHILE ( NOT ODD( i ) ) DO
  55.             BEGIN
  56.                i := i DIV 2;
  57.                x := x * x;
  58.             END;
  59.          i    := i - 1;
  60.          Temp := Temp * x;
  61.       END;
  62.    PowerI := Temp;
  63. END   (* PowerI *);
  64.  
  65. FUNCTION PowTen( Power : INTEGER ) : REAL;
  66. VAR
  67.    Temp   : REAL;
  68.    I      : INTEGER;
  69.    AbsPow : INTEGER;
  70.    X      : REAL;
  71. BEGIN (* PowTen *)
  72.    X     := 10.0;
  73.    IF Power < 0 THEN
  74.       BEGIN
  75.          Power := -Power;
  76.          X     := 0.1;
  77.       END;
  78.    Temp := 1.0;
  79.    WHILE( Power > 0 ) DO
  80.       BEGIN
  81.          WHILE ( NOT ODD( Power ) ) DO
  82.             BEGIN
  83.                Power := Power DIV 2;
  84.                X     := X * X;
  85.             END;
  86.           Power := Power - 1;
  87.          Temp  := Temp  * X;
  88.       END;
  89.    PowTen := Temp;
  90. END   (* PowTen *);
  91.  
  92. begin
  93. end.
  94.